﻿// glogTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <string>
#include <iostream>
#include "logging.h"

using namespace std;

int main(int argc, char* argv[])
{
    std::cout << "Hello World!\n";
    std::cout << argc << std::endl;
    std::cout << argv[0] << std::endl;

	//初始化glog
	google::InitGoogleLogging(argv[0]);

	//设置glog分类目录
	string strTemp = "./log/";
	string strSubfolder = "";

	//strSubfolder = strTemp + "Error\\";
	google::SetLogDestination(google::GLOG_ERROR, strTemp.c_str());
	//strSubfolder = strTemp + "Warning\\";
	google::SetLogDestination(google::GLOG_WARNING, strTemp.c_str());
	//strSubfolder = strTemp + "Info\\";
	google::SetLogDestination(google::GLOG_INFO, strTemp.c_str());
	//strSubfolder = strTemp + "Fatal\\";
	google::SetLogDestination(google::GLOG_FATAL, strTemp.c_str());		//debug模式下为fatal,release模式为normal

	FLAGS_logtostderr = false;						//日志是否打印到控制台而不是日志文件
	FLAGS_alsologtostderr = true;					//打印日志同时是否打印到控制台
	FLAGS_stderrthreshold = google::GLOG_FATAL;		//输出到stderr的门限
	FLAGS_logbufsecs = 0;							//日志输出延时，设为0，则实时输出
	FLAGS_minloglevel = google::GLOG_INFO;			//日志最低记录等级
	FLAGS_logbuflevel = -1;							//缓存日志的最低等级 , -1表示不缓存,0表示只缓存google::INFO
	FLAGS_colorlogtostderr = true;					//错误等级有颜色区分
	FLAGS_stop_logging_if_full_disk = true;			//占满硬盘时停止glog
	FLAGS_max_log_size = 1;					  	    //单个日志文件最大50M	 
	
    //2. 中间调用
	LOG(INFO) << "glog测试asdfasdfsadfasdfsdfasdfasdfadfadfadfadsfasdf" << endl;
	LOG(WARNING) << "glog测试adfasfdasdfasdfadfadsfadfadfadfadsfasdfadfasfd" << endl;
	LOG(ERROR) << "glog测试adfadsfasfdsafasdfsafdsafdsafdsafdasfsadfafdafdafadfasdfasfdafdadfa" << endl;
	
	//3. 程序结束时回收日志内存
	google::ShutdownGoogleLogging();

}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
